]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
status/network: Fix name of initially hidden devices
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 4 Nov 2022 18:53:57 +0000 (19:53 +0100)
committerMarge Bot <marge-bot@gnome.org>
Thu, 17 Nov 2022 11:09:27 +0000 (11:09 +0000)
We assign (disambiguated) device names every time a device is added
or removed, and store the name on the corresponding menu item.

However menu items are only created when the device should be shown,
not necessarily when it is added (unplugged ethernet cable, ongoing
initialization, ...).

Fix this by tracking device names separately from device items, and
set the name on newly created items.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6040

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2529>

js/ui/status/network.js

index 4cc9bbdd0244ff576ac4c20c02c2203957dd7664..37ef977845ae32545526ece3fcf56c4c0e871773 100644 (file)
@@ -1559,6 +1559,7 @@ class NMDeviceToggle extends NMToggle {
 
         this._deviceType = deviceType;
         this._nmDevices = new Set();
+        this._deviceNames = new Map();
     }
 
     setClient(client) {
@@ -1613,8 +1614,12 @@ class NMDeviceToggle extends NMToggle {
     _syncDeviceNames() {
         const devices = [...this._nmDevices];
         const names = NM.Device.disambiguate_names(devices);
+        this._deviceNames.clear();
         devices.forEach(
-            (dev, i) => this._items.get(dev)?.setDeviceName(names[i]));
+            (dev, i) => {
+                this._deviceNames.set(dev, names[i]);
+                this._items.get(dev)?.setDeviceName(names[i]);
+            });
     }
 
     _syncDeviceItem(device) {
@@ -1647,6 +1652,7 @@ class NMDeviceToggle extends NMToggle {
             return;
 
         const item = this._createDeviceMenuItem(device);
+        item.setDeviceName(this._deviceNames.get(device) ?? '');
         this._addItem(device, item);
     }